// 有装下8个苹果的袋子、装下6个苹果的袋子，一定要保证买苹果时所有使用的袋子都装满
// 对于无法装满所有袋子的方案不予考虑，给定n个苹果，返回至少要多少个袋子
// 如果不存在每个袋子都装满的方案返回-1



#include<iostream>
#include<vector>
using namespace std;
//暴力枚举发现奇数都是-1，从18开始就是没八个就是3 -1 3 -1 3 -1 3 -1
int solve1(int n)
{
    //为了保证最小每次就先试8的袋子
    if(n<=0) return -1;int ans=INT_MAX;
    for(int i=0;i<=n;i++)
    {
        for(int j=0;j<=n;j++)
        {
            if(i*8+j*6==n)
            {
                ans=min(ans,i+j);
            }
        }
    }
    return ans==INT_MAX?-1:ans;
}
int solve2(int n)
{
    if(n<=0) return -1;
    if(n>=1&&n<=17)
    {
        if(n%2!=0) return -1;
        if(n==2||n==4||n==10) return -1;
        if(n==6||n==8) return 1;
        if(n==12||n==14||n==16) return 2;
    }
    else
    {
        if(n%2!=0) return -1;
        else  return (n-18)/8+1+2;
    }
}
int main()
{
    int n;cin>>n;
    for(int i=0;i<n;i++)
    {
        cout<<i<<":"<<solve2(i)<<endl;
    }
    return 0;
}